#include <iostream>

using namespace std;

int func(int a, int b) {

	cout << "func" << endl;

	return 0;
}

int func(int a, int b, int c) {

	cout << "func c" << endl;

	return 0;
}

// 定义函数类型
typedef int (MY_FUNC)(int, int);

// 定义函数类型的指针类型
typedef int (*MY_FUNC_P)(int, int);

// 函数类型，和函数指针
int main(int argc, char *argv[]) {

	MY_FUNC *fp = NULL;
	fp = func;
	fp(1, 2);

	MY_FUNC_P fp2 = NULL;
	fp2 = func;
	fp2(1, 2);


	int(*fp3)(int,int) = NULL;
	fp3 = func;
	fp3(1, 2);

	// 发生函数重载的地方
	int(*fp4)(int,int,int) = NULL;
	fp4 = func;
	// 发生函数调用的地方
	fp4(1, 2, 3);

	return 0;
}

